TikZ là một trong hai packages vẽ hình phổ biến và được yêu thích nhất trong LaTeX. Với gói TikZ bạn có thể vẽ lên tài liệu của bạn bất kỳ thứ gì bạn thích, từ những hình đơn giản nhất như điểm, đường thẳng, đường cong,... cho đến những đồ thị phức tạp đều có thể vẽ bằng TikZ. Bên cạnh đó bạn cũng có thể tô màu, vẽ đậm nhạt, thậm chí tạo ra những hình gradient tuyệt đẹp.
Cài đặt
Để sử dụng TikZ, bạn cần tải về package TikZ và đặt dòng lệnh sau trước
\begin{document}
\usepackage{tikz}
Chỉ đơn giản vậy thôi. Bây giờ, khi muốn vẽ một hình, bạn sử dụng như sau
\begin{tikzpicture} %Những lệnh vẽ; \end{tikzpicture}
Một số lưu ý để học cách sử dụng TikZ?
Trong TikZ chỉ có 2 đối tượng cơ bản là đường (paths) và điểm (nodes). Tất cả những hình phức tạp đều là kết hợp của 2 đối tượng này. Trong đó, paths có thể là:
- draw: nét vẽ đơn, có thể hình dung như nét bút chì. Lệnh vẽ:
\path[draw]
. Hoặc dùng lệnh tắt:\draw
- fill: mảng màu không viền. Lệnh vẽ
\path[fill]
. Lệnh tắt:\fill
- clip: hình dung như một nhát cắt lên các lệnh vẽ phía sau nó. Lệnh vẽ:
\path[clip]
. Lệnh tắt:\clip
- shade: vùng đổ bóng. Lệnh vẽ
\path[shade]
. Lệnh tắt:\shade
Để thuận tiện cho việc học cách sử dụng TikZ, chúng ta chia thành 3 nhóm lệnh:
- Nhóm lệnh vẽ cơ bản. Nhóm này bao gồm:
- Vẽ đường nối 2 điểm, 3 điểm,...
- Vẽ đường tròn với tâm và bán kính
- Vẽ hình chữ nhật
- Vẽ đường cong
- Nhóm lệnh vẽ nâng cao
- Vẽ đồ thị theo hàm số
- Vẽ hình sử dụng vòng lặp
- Nhóm tùy biến dùng để “trang trí”. Nhóm này bao gồm:
- Chọn màu sắc đường vẽ
- Tô màu một vùng diện tích
- Chọn nét đứt/nét liền
- Chọn độ dày đường vẽ
- Bắt đầu/kết thúc đường vẽ bằng mũi tên, chấm tròn,...
- Thêm chú thích hình vẽ (font chữ, vị trí của chủ thích,...)
Chúng ta nên bắt đầu học vẽ những hình cơ bản trước, sau đó mới đến những hình phức tạp hơn. Nhóm lệnh 1 và 2 sẽ được hướng dẫn cụ thể qua các ví dụ. Nhóm lệnh 3 (nhóm lệnh tùy biến) sẽ được lần lượt thêm vào các ví dụ để bạn đọc hình dung.
Bây giờ chúng ta sẽ cùng tìm hiểu cách vẽ các hình cơ bản qua các ví dụ đơn giản.
Những lệnh vẽ cơ bản
Ở đây chúng ta tạm thời chỉ quan tâm đến lệnh vẽ
\draw
, còn những lệnh vẽ khác và các tùy biến liên quan đến màu sắc, độ dày, nét vẽ,... sẽ được trình bày kĩ hơn ở bài viết sau.Tuy nhiên trong các ví dụ, mình sẽ cố gắng kèm theo những phiên bản đã trang trí của lệnh vẽ đó để bạn có được hình dung về cách những tùy biến trang trí tác dụng lên hình vẽ.
Vẽ đường nối các điểm
\begin{tikzpicture} \draw (0,0)--(1,1); \draw [line width=3, red] (1,0)--(2,1); \end{tikzpicture}
Trong mỗi hình vẽ TikZ, có một hệ tọa độ ẩn, với các ô lưới có kích thước 1cm x 1cm. Ở lệnh vẽ thứ nhất, ta thực hiện vẽ một đoạn thẳng nối điểm có tọa độ (0,0) với điểm có tọa độ (1,1).
Chú ý rằng không phải lúc nào điểm ở góc dưới trái của hình cũng có tọa độ (0,0). Tikz sẽ tự động đặt điểm có tọa độ thấp nhất của hình vẽ vào góc dưới trái. Ví dụ, nếu bạn thực hiện lệnh vẽ
\draw (-1,-1)--(0,0);
thì cũng sẽ cho kết quả tương tự.Ở lệnh vẽ thứ 2, ta thấy thêm 2 tùy biến
line width=3
và red nó quy định đường vẽ có độ dày là 3pt và có màu đỏ.Nếu muốn vẽ 2 hay nhiều đoạn nối tiếp nhau, bạn chỉ việc khai báo thêm những điểm tiếp theo như sau
\begin{tikzpicture} \draw (0,0)--(1,1)--(2,1)--(2,0); \draw [dotted, red] (3,0)--(4,1)--(5,1)--(5,0)node[below]{Math2IT}; \end{tikzpicture}
Tùy biến dotted làm cho đường vẽ trở thành đường chấm chấm. Còn dòng
node[below]{Math2IT}
tạo ra một chú thích ngay dưới điểm (5,0)Một lưu ý quan trọng: Luôn kết thúc các lệnh vẽ bằng dấu chấm phẩy.
Vẽ đường tròn với tâm và bán kính
\begin{tikzpicture} \draw (0,0) circle (1cm); \draw [dashed, line width=0.2cm, blue, fill=yellow] (3,0) circle (1); \end{tikzpicture}
- Lệnh thứ nhất vẽ một đường tròn có tâm là điểm (0,0) và bán kính 1cm. Lệnh thứ 2 vẽ đường tròn tâm (3,0) bán kính 1cm, với đường nét đứt (dashed) màu xanh.
- Ở lệnh thứ 2, việc quy định độ dày đường vẽ line width=0.2cm đã làm cho hình thứ 2 to hơn hình thứ nhất 0.1cm, cần lưu ý điểm này khi vẽ các hình yêu cầu độ chính xác cao.
Vẽ hình chữ nhật
\begin{tikzpicture} \draw (0,0) rectangle (2,1); \draw [rounded corners, purple, ultra thick] (3,0) rectangle (5,1); \draw [rounded corners, purple, ultra thick, left color=blue, right color=blue!50] (6,0) rectangle (8,1); \end{tikzpicture}
Trong lệnh vẽ thứ nhất, điểm (0,0) chính là tọa độ của góc dưới trái, còn điểm (2,1) là tọa độ góc trên phải. Như vậy chắc bạn đã đoán được cách vẽ hình chữ nhật trong TikZ: xác định tọa độ góc dưới-trái và góc trên-phải, kết nối chúng bằng từ khóa rectangle.
Đến đây, nếu các bạn để ý sẽ thấy những lệnh trang trí (tùy biến) luôn được chứa trong cặp dấu ngoặc vuông. Ở ví dụ trên, trong lệnh vẽ thứ 2 ta thấy thêm tùy biến
ultra thick
, nó cũng quy định độ dày của đường vẽ. Bạn cũng dễ dàng đoán được những tùy biến rounded corners
và purple có tác dụng như thế nào.Trong lệnh vẽ thứ 3, left color và
right color
quy định màu sắc bên trái và phải của vùng diện tích tạo ra bởi đường vẽ (đường vẽ không nhất thiết phải đóng). Chắc bạn cũng đoán được, blue!50 có nghĩa là màu xanh bị nhạt đi 50%.Vẽ đường cong
Để vẽ đường cong, ta dùng lệnh sau
\begin{tikzpicture} \draw (0,0) to [out=90,in=180] (3,2); \draw [->, very thick, green] (4,0) to [out=-30,in=120] (7,2); \draw [->, very thick, orange] (8,0) to [out=-30,in=120] (11,2) to (12,2); \end{tikzpicture}
- Lệnh thứ nhất vẽ một đường cong xuất phát từ điểm (0,0) và kết thúc tại điểm (3,2). Đường cong này đi ra khỏi điểm (0,0) theo hướng 90 độ và đi vào điểm (3,2) theo hướng 180 độ. Như vậy có thể thấy nếu ta bỏ đi đoạn [out=90,in=180] thì lệnh này sẽ vẽ ra chính xác một đoạn thẳng.
- Trong lệnh thứ 2 ta thấy xuất hiện thêm tùy biến
<->
.Tùy biến này quy định hình dáng 2 đầu mút của đường vẽ. Bạn hãy thử thay bằng tùy biến>-<
rồi xem kết quả nhé.
- Lệnh thứ 3, ta vẽ liên tiếp 2 đường cong đi qua 3 điểm. Tuy nhiên ở đoạn thứ 2, từ điểm (11,2) đến điểm (12,2) ta không khai báo out/in làm cho đường vẽ trở thành một đoạn thẳng.
Cách khác để vẽ đường cong
Thay vì sử dụng
\draw (0,0) to [out=90, in=180] (3,2);
để vẽ đường cong thứ nhất, ta sử dụng một điểm kéo để điều khiển (controls) độ cong, cũng sẽ cho kết quả tương tự: Khi đó bạn hình dung là sẽ có một "lực kéo" từ điểm (0,1.5) làm cho đường cong bị cong đi tại điểm đó\begin{tikzpicture} \draw (0,0) .. controls (0,1.5) .. (3,2); \draw [magenta, dashed, thick] (0,0) .. controls (0,1.5) .. (3,2); \end{tikzpicture}
Nếu kết quả trên chưa làm bạn vừa ý thì bạn có thể tạo thêm một điểm kéo khác tại vị trí (1.5,2)
\begin{tikzpicture} \draw (0,0) .. controls (0,1.5) and (1.5,2) .. (3,2); \draw [>-<, violet, ultra thick](0,0) .. controls (0,1.5) and (1.5,2) .. (3,2); \end{tikzpicture}
Trên đây là 2 cách để tạo đường cong trong TikZ. Bài viết tiếp theo Math2IT sẽ giới thiệu bạn cách vẽ đường cong đồ thị hàm số trong TikZ.
Kết
Với những hướng dẫn trên, bạn đã biết cách vẽ những hình cơ bản bằng Tikz, đồng thời biết được một số lệnh tùy biến cho đường vẽ. Tùy vào độ phức tạp của hình cần vẽ, chúng ta sẽ kết hợp nhiều lệnh vẽ khác nhau để cho ra một hình vẽ ưng ý nhất. Ở bài viết sau chúng ta sẽ tìm hiểu các lệnh vẽ nâng cao và những tùy biến thú vị khác.